{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cf9a11e5",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3410558f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "总上涨月份数：102\n",
      "总月份数：180\n",
      "总体上涨概率：56.67%\n"
     ]
    },
    {
     "data": {
      "image/png": "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7BgcTAcAhKDPP/9cF110kSTJ5XJ5LQsLC5Pb7faKz58/X5KsU8b37Nmj5ORkSUe+FzpmzBhNmjRJDz74oCQpMTFRS5Ys0SWXXKJTTz1Vjz/+uEaPHi2Hw1GnPD0ejx544AG99NJLio2N9btecXGxLr74Yp199tk+l+fk5OjPf/6z9T3bqlq1aqXPP/9cHTt2tB43IiIioBw3b96s888/X0lJST5PSf7hhx8UGxuriy++2G/78/LydPnll8vtdmvZsmXq1auXteyKK65QbGysNQa1eeSRR3TKKafoP//5j/r37x/QfYwxuu222/TMM89o/vz5evbZZ3XBBRfUeJ977rlHM2fO9LmsttOv67peXezfv19t2rRRWFiYysvLvb5HffjwYev/xhg9++yzmjx5crVtdOzYUc8884wmTJig4cOHq1+/fpo3b57mzJljzZsKCxYs0B/+8AddfPHFViwjI0P//ve/lZeXp2XLlik6OlpffvmlPB6PPvvsM+Xk5MgYo7S0NK9t/fnPf9b9998vSZo1a5bat2+v6667Tk8++aRmzJihb775Rp06dZLb7Va3bt10xx136Oabb66xP5o1a6ZFixapRYsWAfchAKDhUHQDQBM1ePBglZaW+iwsMzMzlZqaqszMTJ100knVlpeUlCgyMlLFxcV66KGH9Oijj2rKlCmaPn26ysvLrfWaN2+uDz74QNdee62uvPJK/fnPf9bvfvc7jR49WomJiQHl+fnnnysqKkoDBw70uby8vFxhYWF6+eWXa/3hsVGjRunEE09UcXGxIiIi5HK5VFpaKqfTqfDwcHXq1Mlat6ysTHl5efrVr37l8zFLS0u1dOlSJScna/ny5br55pt15pln6rzzzqu2/qpVq9SnT58aC+4LL7xQGzZs0Ntvv+1VcFdmjJHH49Hhw4dVWlqq5s2b+1wvIiJCN9xwg+bNmxdw0e1wONSlSxe98sorGj9+vObPn68XX3xRo0aN0g033KBRo0bpkksusdYfN26cEhISatzmgw8+aH0I0xA2bdqkefPmWbfN/35joGXLlrr66qslSe+//77GjRunv/zlL5o8ebI++ugjjRgxwrpPWVmZ9f9FixZp//79mjBhgs/Hu+aaa5SVlaWBAwfqD3/4g1JSUjRx4kRt2bJF6enpuvDCCxUfH68ffvhB55xzjuLj46373nnnnZow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18XDDz+s7OxsZWVlSZJ+/vlnZWVlqXfv3nrzzTeVm5tr/Z100kn67LPPtH//fp8/pnbw4EE98sgjatmypc+/qmdRNLTt27fr8OHDOnDggDZs2KCWLVsqOTlZt9xyi37729+qVatWeumllxQVFaWbbrpJL730koYNG+a1jXfffVdr167VyJEjveJffvmlpCPfmfZnzJgx6t69uwYOHKjw8HBdd9116tKli9q3b6+RI0dq+PDhOvnkk/XRRx/pP//5j84888xqR8tHjRqlf//739q7d6/OO+88tWvXTj169NDu3bs1Z84cde7cWUuXLlWLFi101VVX6eWXX9aaNWv4wTQACDEU3QDQxJn//TjX559/rvLycpWXl1unaWdmZlqxRYsW+bz/HXfcofT0dC1YsEB79uzRnj17dOaZZ2ratGnW7ZkzZ2r16tW64YYb6pzfBRdcoJUrV3qd2uxLamqqsrOzlZ2drb///e+SjvyQV+fOnfXBBx8oOztbF110kUaPHl3rYy5evFg///yzLr/8citWUXRX/BuoQ4cO6bPPPqsWP3DggFUwT58+XTExMQoPD9cDDzygL7/80vrAwuFwaMGCBXrllVe8YmFhYYqOjvZ5lFk68kNbVYvI2rRo0UKJiYkyxsjlcik1NVWtWrXSuHHjdPXVV2vOnDlq0aKFWrRooUOHDumEE05Q69atq529cPDgQe3atUvvvPOOdaZE1b8dO3bUKbe6euihh3TPPffovvvukzFGS5curXYKfFhYmE4//XR9/fXX1e7vdrv14IMP6re//a169uxpxXfs2KFPPvlEt99+ux577DEVFxf7fPzvv/9eeXl5SkpK0sKFC1VYWKgPPvhAcXFx1q+cX3311XryySf11ltvVful+IoPu8aPH68zzjhDt9xyixYsWKC0tDSdcMIJysvLq1ZcOxwOnXDCCX77xBijO+64Q3v37q2x7wAADYuiGwCauLy8PBljdN5551kFXcV3S1NSUqzY8OHDfR5VTUxM1MKFC3XTTTfJ7XYrOTlZERERio2NVXJysnXJr08//bTOp5ZLUuvWrTV+/HhNmTKlxqPM27ZtU/v27dW+fXtNnDjRik+aNEnPPPOMdu3apW+++UZjx46t8fF2796tiRMn6sILL/QqtipOPa5r0b1jxw4NGTLE60ODrVu36uuvv1a/fv0kHflwoLCwUCUlJXK73dUK1Msvv1wTJkzwirndbpWWluqJJ56o9pivvPKKdu3aZf2id13t3r1brVu3tr6rftddd2n+/PleR/4LCwsVFRXlc5/46KOPJMnv5dvs5vF49MEHH+icc87xivs6dX/w4MH6xz/+US3+xBNPaPv27davi0tHitZJkyZp8ODBeuyxxxQfH6/rrrvO7z4xd+5cZWVladWqVfryyy/1wAMPaPLkydZ3zCdNmqTvv/9eq1at0nXXXVft/gsWLNDf//533XPPPRo9erSSkpK0ZcsWSdLSpUt1+umnB94pkm699Va98sordf6uPwDg6FB0A0AT16JFCxljtH79evXq1csqbiv+Vq1apU6dOmnRokV+j5BNmzZNSUlJuvHGG6ste+SRR3TqqadqypQp9c5x5syZWrNmjaZPn+53nZSUFC1ZskTz58/X+PHjlZmZqbvvvluTJk3Shg0bNHToUP3ud7/zuqxTBY/Ho40bN2rLli3auXOnrr76aj377LNe61Rc37nyJacC0aVLFw0ePFiXXXaZnn32WT3xxBMaOHCgYmJirKPUkZGRiomJsX6ILhBOp1MRERHVjt6uWrVKv//97/XMM88oLi6uTrlWyMzM1N69e72OrF999dW69NJLrduHDx9Wx44dqxXWxhg9+eSTGjJkiFq3bu33Mer64UVdLF++XIcOHdLQoUNrXC87O1udOnVSenq619HulStX6r777tOf/vQn67Jo5eXluuGGG/TDDz9o7ty5crlceuWVV/T+++9r9OjRXtcCr3DzzTdr8eLFKi4u1rBhw/T1118rIyPD+oG/goICxcbGKiYmRjk5OV73LS4u1vfff68XX3xRv//979W1a1d17NhRy5cv11dffaWPP/7Y60yMCs8884y++uorr1hRUZG2bdumN998U0uWLFGfPn0C60gAQIPgVzUAoIk7fPiwnnnmGd1///0699xzddNNN3ktT0lJ0dChQzV69Gidf/75mj17trp16ybpSHF24MABRUZGauLEiVqwYIEyMjJUVFSk7OxsffPNN5o7d67mzp2rtWvX6vDhw3I4HHU+Qte6dWu9//77Gjx4sAoKCvS3v/3NWnbHHXfo7bffVrNmzXT33Xfr1FNPVVlZmZKSkvTggw8qKytL0dHRSklJ0VtvvaWoqCiNGDHCut7x7t27dfXVVysrK0vXXHONbrrpJkVHR8vhcKhz585KTk5W69atFR0drW+//VYlJSX6+uuvtXfvXvXs2dPr2t7+vPHGG5o8ebLuvfdehYeHa/DgwXr44YcD/qG2iqPftVm6dKkuvfRS68hofV188cXKzc31u/zrr7/WlVdeqW3btlXLa86cOVqxYoXXr69X9s0332jVqlXW99mrXmv8p59+ksfjqXaN6KKiIuXl5VnXk66s4hfye/fuLYfDofnz5+viiy/2+kCi8o+keTweFRYW6rzzztM555yjIUOGaMqUKVq2bJnCwsL01ltv6eSTT9akSZOsnG644QZt3bpVH3/8sdq1aydJ6t27txYtWqTLLrtMvXv31uOPP67hw4dbjxMZGanu3bvr9ddfV4sWLfTmm2/qs88+09dff609e/bo+uuv19VXX61169Zp4MCB+vDDD62CeO3atfr1r3+tLl266KKLLtLs2bN17rnnatOmTRoyZIjGjBljXYPd6XRq5cqVOu200zRjxgyNHz9eAwYMsPJYs2aNWrduXe13CiRZH64BAGxk6wXJAAAh7bPPPjMnnXSSOfnkk827775b47o///yzGTx4sHG5XObll182xhhz++23m/DwcK/r/vr7i4uLM82aNTPt2rWrd74//fRTtWtDZ2VlmcLCQq/YP/7xD9OlSxfzzTffmFNPPdW6FvOePXvM9OnTzfDhw01+fr4xxpgZM2aYnj17el2D/IsvvjBTp041gwcPNh06dDDx8fFe18iu+NuwYUO921IXl1xyibnqqqtqXW/t2rXmxRdftC2PQ4cOmZSUFCPJTJgwodryrKwsc8opp5hbbrnF7za+++4743A4TNu2bc0dd9xRbfmpp54a0P5U+S86Otq4XC5TXFxs9u7da2JiYqxripeVlZmpU6eaX/3qVyY1NdUYc+S645LMBRdcYPLz88369etNs2bNzMSJE608tm/fbow5si85nU5zxhlnmG3btvlsU0ZGhunWrZuJiYkxGRkZxhhjPvzwQ/Ob3/zGxMTEmJtuuskcOHDAGGPM5s2bzfDhw01UVJR58sknjTHG5OfnmwEDBpjw8HDz2muvWdut+ng//PCDiYmJMUOHDjVFRUVW/IYbbjBOp9NIMh07djR79+71ul9ubq5Zu3atz9zvu+++o7qeOwCgdg5j+HgTAJqq0tJSvfzyy5owYYKaNWsW0H1ee+01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kpLSkPkBAAAAAHDcCuj08gq7d++ucXlubq4uuOAC7d2796iSAgAAAACgMahT0X3aaaepd+/eeuCBB5SZmVlt+b333qsdO3aoZcuWDZUfAAAAAADHrToV3cYY3XfffcrMzNSqVau8lr388st67bXX9OabbyoyMrJBkwQQXNOmTdPw4cODnQbQqDCvAABoGgL6TncFh8OhK664QldccYUVM8bo8ccf1yOPPKLPPvtMvXr1augcAQTRmjVrNGfOHKWnpwc7FaDRYF4BANB01KnorjBr1izl5uYqLy9Pn376qfr3769Vq1bxI2pAI+PxeDRx4kTdcccdSktLC3Y6QKPAvAIAoGmp9fTy0tJSTZ8+XTk5OVbMGKOioiLt27dPBQUFOnDggHJzc21NFMCxN3fuXGVkZKh9+/Z67733VFZWFuyUgOMe8woAgKal1qJ727Zt+vbbb5WWlqbCwkKtWrVK9957r55++mktXLhQe/fu1ahRozRkyBC98847xyJnAMdAYWGhpk+frrS0NG3btk1/+9vfdPbZZ6u4uDjYqQHHLeYVAABNT62nl3fq1EmfffaZsrKy9NJLL2nYsGE699xz9de//lUpKSlyuVy68cYb1bt3bw0ZMkRt2rTR2WeffSxyB2Cjd955R4cOHdLSpUvVqlUrlZeXq3v37nr11Vc1ceLEYKcHHJeYVwAAND0B/3p569atNW3aNG3ZskUpKSnKyMiQ2+22lp9++ul6/PHHNXbsWBUWFtqSLIBjZ+fOnerXr59atWolSQoLC1OPHj30888/Bzkz4PjFvAIAoOmp0yXDVq5cqWHDhun+++/XRRddpDPOOEO/+93vrO9zX3PNNerTp4/27t1rS7IAjp2TTjqp2imv27Zt04knnhikjIDjH/MKAICmJ+Ci+7nnntPAgQM1cOBARUdHy+Fw6M0331RBQYG6du2q5557Th6PR4sWLVLHjh3tzBnAMXDJJZdo3bp1mjt3rnbu3KmnnnpK6enpGjVqVLBTA45bzCsAAJqegIru9evXa+bMmfr000/1xz/+UeHh4ZKkU045RX//+9/10Ucf6fnnn1fPnj21efNmWxMGcGwkJibqo48+0iuvvKJOnTrpySef1FtvvcWlAYGjwLwCAKDpCeg63V27dtXPP/+siIgIn8v79Omj5cuX6+mnn1ZqamqDJgggePr3769ly5YF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pwceeEC9e/e2Yk888YQGDBigxMRE9e/fX7feemsQMwyuZcuWqUOHDpo7d64+//xz3XLLLUpNTdWcOXPU1H/b1N+HoBWKiop03XXXHaNsQstf/vIXTZgwQbm5uXK5XLr88ss1adIknXvuuXr77bd13nnnad68ecFOM2gOHjzodfvSSy/VN998o/PPP18tWrTQqFGj9PLLLwcnuRDGe8Ga0T/+0Td1ZNDoOZ1O43A4fP45nU7jdDpNampqsNMMCqfTaX7729+apKQk8/nnn1db/q9//cukpaUFIbPgO/XUU80LL7zgFUtPT7f+/9NPP5kWLVqYgwcPHuvUQsK2bdtMixYtjDHGLF682Jx88snmuuuuMzk5OUHOLPhatGhRbT599913pmPHjubQoUPm448/Ng6HI0jZBd+ZZ55pnn/+eet2Tk6O6dGjh4mNjTX9+vXzmmdNTVRUlBkwYICZMWOG2bRpU7XleXl5xul0BiGz4Gvfvr3529/+Zt3+/vvvjcPhMD/++KMxxpgff/zRpKSkBCm74GvVqpWZNWuWKSoqMps3bza9e/c2Ho/HWv7555+b0047LYgZBhfvBWtG//hH3zSMsGAX/bCfr6O4+MXs2bM1YMAAjRo1SpMmTdJDDz2k8PBwSdKAAQO0ffv2IGcYHDt37tTQoUOt26tXr9YFF1ygPXv2KDw8XKeeeqratWunjRs36owzzghipsE3dOhQrV27Vnfffbe6deumxx57TFdddVWw0wqasLAwlZeXe8USExO1a9cuRUdH66yzzpLD4QhSdsG3Zs0aXXLJJdbtli1batSoUTr55JO1bds2nXPOObr55pv1yCOPBDHL4EhPT9e3336rL774Qv369VOHDh108803a9y4cYqMjJSkJns2wJ49e5SUlGTd7ty5sxwOh9q3by/pyBw7cOBAkLILvk8++URTpkzR448/rlGjRikqKsrreaZTp07atWtXEDMMLt4L1oz+8Y++aRhcpxtNmtPpVEFBgWJiYrRx40aNHTtWhYWFmjJlirp06aLnnntOmzZt0g8//BDsVI+5MWPGKCoqSn/5y190+PBhXXvttdq0aZOGDBmiO+64Qz/88IN+//vfa8eOHWrRokWw0z2mrr/+ehUUFOi9997TuHHjrLjD4dDy5cu1YcMGDRkyRIsXLw5ilsEzZcoUffTRR3ruued01llnaf/+/brllltUXl6uxYsXKz8/Xy1atJDH4wl2qkFxyimnaPLkydYp9m63WxdccIHuuOMODR8+XNu2bdOtt97aZL/aUsHtduuzzz7T3LlztXz5ct16662aMGGCUlJSmuS+07dvX8XFxendd99VfHy87r//fr355pvq16+fbrnlFr300kvasmWLlixZEuxUg+r999/XPffco/Xr12vatGm69tpr5fF4NHXqVDVv3lyvvfZasFME0ARRdDdyxpgmfUSpNi6XS/n5+YqJiZF05E3eiy++aBXbvXv31rx589S5c+cgZ3rsHThwQBMmTNAnn3wij8ejUaNG6cUXX9Rtt92md955RwkJCXrsscd0+eWXBzvVY+7vf/+7srOz9cADD2jOnDl+17vmmmuOYVaho7i4WJMnT9Yrr7wit9stp9OpCy64QP/3f/+nlJQUHTp0SL1799Z///vfYKcaFB999JFGjx6tHj166OSTT9aaNWsUFxenb775xjrLBt62b9+uGTNmaOHChcrKymqSRfeaNWt02WWXac+ePYqOjlaHDh20ePFiTZ06VZ9++qk6dOig+fPnKzU1NdipBp0xRm+88Yaeeuopff/995Kk/v37a+HChUpMTAxydsHjdrv11Vdf6fvvv1dOTo7Ky8sVHx+vHj166OKLL1ZERESwU0QIeu+993ThhRcqKiqq2rIPP/xQXbt2VVpaWhAyO75QdDdi5eXluvDCCzVr1qwmf/qvL8YY7dixQ+3atQt2KiGn8oc1hYWF8ng8io+PD3JWoaG4uFjNmjVTTk6OHnjgAT3zzDPBTimkVN53SkpKtGPHDp1wwgmKjY0NcmahoaJ/du/erQULFmjXrl3q2LGjxo8fb50+3VRVzK2abN26VV9//XWT+0CrYr9xu91as2aNXC6XevToEey0QkZNBxgKCgrkdrub3BlZVb3//vu66aabFBcXp7POOkutW7dWaWmptm7dquXLlys+Pl7vvfeeTjvttGCnGlK2bdumG2+8UW+88YZatWoV7HSCwuVyWT+sW/VDvXnz5mnatGl66aWXNGLEiCBleJwIwvfIcQxNmzbNREREmDFjxpgPP/zQ7Nu3z5SXlwc7raA7fPiwOe+888x3330X7FRCDn3jX2lpqenatat5++23g51KSGLfqRn94x9zyz/2m5rRP7Xbt2+fiYmJMfPnz/e5vLi4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",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "\n",
    "# ========== 参数设置 ==========\n",
    "N_YEARS = 15  # 最近N年\n",
    "symbol = \"黄金\"\n",
    "# ========== 日期范围 ==========\n",
    "today = datetime.datetime.today()\n",
    "start_date = (today - pd.DateOffset(years=N_YEARS)).strftime('%Y%m%d')\n",
    "end_date = today.strftime('%Y%m%d')\n",
    "\n",
    "# ========== 获取数据 ==========\n",
    "df = ak.futures_main_sina(symbol=\"AU0\", start_date=start_date, end_date=end_date)\n",
    "df[\"日期\"] = pd.to_datetime(df[\"日期\"])\n",
    "df = df.sort_values(\"日期\")\n",
    "\n",
    "# ========== 添加年月字段 ==========\n",
    "df[\"年份\"] = df[\"日期\"].dt.year\n",
    "df[\"月份\"] = df[\"日期\"].dt.month\n",
    "\n",
    "# ========== 重采样为每月数据（使用每月最后一天收盘 & 第一天开盘） ==========\n",
    "monthly_df = df.groupby([df[\"日期\"].dt.to_period(\"M\")]).agg({\n",
    "    \"开盘价\": \"first\",\n",
    "    \"收盘价\": \"last\"\n",
    "}).reset_index()\n",
    "\n",
    "monthly_df[\"月份\"] = monthly_df[\"日期\"].dt.month\n",
    "monthly_df[\"上涨\"] = monthly_df[\"收盘价\"] > monthly_df[\"开盘价\"]\n",
    "\n",
    "# ========== 统计每月上涨次数 ==========\n",
    "up_counts = monthly_df.groupby(\"月份\")[\"上涨\"].sum()\n",
    "\n",
    "# ========== 新增：统计每月总数据数，并计算上涨概率 ==========\n",
    "total_counts = monthly_df.groupby(\"月份\")[\"上涨\"].count()\n",
    "up_probs = up_counts / total_counts\n",
    "\n",
    "\n",
    "total_up_count = up_counts.sum()\n",
    "total_months = 12 * N_YEARS\n",
    "overall_up_probability = total_up_count / total_months\n",
    "\n",
    "print(f\"总上涨月份数：{total_up_count}\")\n",
    "print(f\"总月份数：{total_months}\")\n",
    "print(f\"总体上涨概率：{overall_up_probability:.2%}\")\n",
    "\n",
    "# ========== 绘图 ==========\n",
    "plt.figure(figsize=(10, 5))\n",
    "bars = plt.bar(up_counts.index, up_counts.values, color=\"skyblue\")\n",
    "\n",
    "# 添加每根柱子上方的文本\n",
    "for bar in bars:\n",
    "    height = bar.get_height()\n",
    "    plt.text(bar.get_x() + bar.get_width() / 2, height + 0.2, f\"{int(height)}\",\n",
    "             ha='center', va='bottom', fontsize=10)\n",
    "\n",
    "plt.xticks(range(1, 13), [f\"{m}月\" for m in range(1, 13)], rotation=-90)\n",
    "plt.xlabel(\"月份\")\n",
    "plt.ylabel(\"上涨次数\")\n",
    "plt.title(f\"{symbol}（最近{N_YEARS}年）每月上涨次数统计\")\n",
    "plt.grid(axis='y', linestyle='--', alpha=0.6)\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
